﻿// -----------------------------------------------------------------------
// <copyright file="MainWindowViewModel.cs" company="">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

using System.Collections.ObjectModel;
using System.Windows.Controls;
using System.Windows.Input;
using Recept.Command;

namespace Recept.ViewModel
{
    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public class SearchPageViewModel : ViewModelBase
    {
        #region Member

        private INavigate navi;

        private Collection<string> menu;
        private string selectedMenu;

        private Collection<string> foodsort;
        private string selectedFoodsort;

        private Collection<string> country;
        private string selectedcountry;

        private Collection<string> method;
        private string selectedmethod;

        #endregion

        #region Properties

        //Selection
        /// <summary>
        /// Gets or sets the selected menu.
        /// </summary>
        /// <value>
        /// The selected menu.
        /// </value>
        public string SelectedMenu
        {
            get
            {
                return selectedMenu;
            }

            set
            {
                selectedMenu = value;
                this.OnPropertyChanged("SelectedMenu");
            }
        }

        /// <summary>
        /// SelectedFoodsort
        /// </summary>
        public string SelectedFoodsort
        {
            get
            {
                return selectedFoodsort;
            }

            set
            {
                selectedFoodsort = value;
                this.OnPropertyChanged("SelectedFoodsort");
            }
        }

        /// <summary>
        /// Gets or sets the selected country.
        /// </summary>
        /// <value>
        /// The selected country.
        /// </value>
        public string SelectedCountry
        {
            get
            {
                return selectedcountry;
            }

            set
            {
                selectedcountry = value;
                this.OnPropertyChanged("SelectedCountry");
            }
        }

        /// <summary>
        /// Gets or sets the selected method.
        /// </summary>
        /// <value>
        /// The selected method.
        /// </value>
        public string SelectedMethod
        {
            get
            {
                return selectedmethod;
            }

            set
            {
                selectedmethod = value;
                this.OnPropertyChanged("SelectedMethod");
            }
        }

        //Collection
        /// <summary>
        /// Gets or sets the menu.
        /// </summary>
        /// <value>
        /// The menu.
        /// </value>
        public Collection<string> Menu
        {
            get
            {
                return this.menu;
            }

            set
            {
                this.menu = value;
                this.OnPropertyChanged("Menu");
            }
        }

        /// <summary>
        /// Collection for Foodsort
        /// </summary>
        public Collection<string> Foodsort
        {
            get
            {
                return this.foodsort;
            }

            set
            {
                this.foodsort = value;
                this.OnPropertyChanged("Foodsort");
            }
        }

        /// <summary>
        /// Gets or sets the country.
        /// </summary>
        /// <value>
        /// The country.
        /// </value>
        public Collection<string> Country
        {
            get
            {
                return this.country;
            }

            set
            {
                this.country = value;
                this.OnPropertyChanged("Country");
            }
        }

        /// <summary>
        /// Gets or sets the method.
        /// </summary>
        /// <value>
        /// The method.
        /// </value>
        public Collection<string> Method
        {
            get
            {
                return this.method;
            }

            set
            {
                this.method = value;
                this.OnPropertyChanged("Method");
            }
        }

        public ActionCommand SearchCommand { get; set; }

        #endregion

        /// <summary>
        /// Initializes a new instance of the <see cref="SearchPageViewModel"/> class.
        /// </summary>
        public SearchPageViewModel(INavigate obj)
        {
            this.SearchCommand = new ActionCommand() { ActionHandler = OnSearchCommandExecute };

            this.Menu = new Collection<string>();
            this.Menu.Add("Getränke");
            this.Menu.Add("Vorspeise");
            this.Menu.Add("Brunch/Frühstück");
            this.Menu.Add("Hauptspeise");
            this.Menu.Add("Süße Hauptspeise");
            this.Menu.Add("Nachtisch/Dessert");
            this.Menu.Add("Kinderrezepte");

            this.Foodsort = new Collection<string>();
            this.Foodsort.Add("Auflauf/Überbackenes");
            this.Foodsort.Add("Braten (Fleisch)");
            this.Foodsort.Add("Brot/Brötchen");
            this.Foodsort.Add("Dips/Cremes");
            this.Foodsort.Add("Eingemachtes");
            this.Foodsort.Add("Eisspeise/Halbgefrorenes");
            this.Foodsort.Add("Fingerfood/Snack");
            this.Foodsort.Add("Kuchen/Torte");
            this.Foodsort.Add("Pfannkuchen/Crêpe");
            this.Foodsort.Add("Pikante Kuchen/Pizza");
            this.Foodsort.Add("Plätzchen/Kekse");
            this.Foodsort.Add("Pudding/Cremes");
            this.Foodsort.Add("Salate");
            this.Foodsort.Add("Sandwiches/Brote");
            this.Foodsort.Add("Suppen/Eintöpfe");
            this.Foodsort.Add("Würzmittel/Marinade");

            this.Country = new Collection<string>();
            this.Country.Add("Italienisch");
            this.Country.Add("Asiatisch");
            this.Country.Add("Deutsch");
            this.Country.Add("Britisch");
            this.Country.Add("Chinesisch");
            this.Country.Add("Französisch");
            this.Country.Add("Griechisch");
            this.Country.Add("Spanisch");
            this.Country.Add("USA");

            this.Method = new Collection<string>();
            this.Method.Add("Backen");
            this.Method.Add("Einfrieren");
            this.Method.Add("Kochen");
            this.Method.Add("Blanchieren");
            this.Method.Add("Braten");
            this.Method.Add("Dämpfen");
            this.Method.Add("Dünsten");
            this.Method.Add("Einmachen");
            this.Method.Add("Frittieren");
            this.Method.Add("Gratinieren");
            this.Method.Add("Grillen");
            this.Method.Add("Pochieren");
            this.Method.Add("Schmoren");


            //*******
            this.navi.NavigateToNextStep();
        }

        private void OnSearchCommandExecute()
        {

        }
    }
}
